# -*- coding: utf-8 -*-
"""
乒乓球培训管理系统 - 错误处理

处理权限错误和其他HTTP错误
"""

from flask import Blueprint, render_template, request, jsonify
from flask_login import current_user

# 创建错误处理蓝图
errors_bp = Blueprint('errors', __name__)


@errors_bp.app_errorhandler(403)
def forbidden(error):
    """
    403 权限不足错误处理
    """
    if request.is_json:
        return jsonify({
            'success': False,
            'error': '权限不足，无法访问该资源',
            'error_code': 403
        }), 403

    return render_template('errors/403.html'), 403


@errors_bp.app_errorhandler(404)
def not_found(error):
    """
    404 页面未找到错误处理
    """
    if request.is_json:
        return jsonify({
            'success': False,
            'error': '请求的资源不存在',
            'error_code': 404
        }), 404

    return render_template('errors/404.html'), 404


@errors_bp.app_errorhandler(500)
def internal_server_error(error):
    """
    500 服务器内部错误处理
    """
    if request.is_json:
        return jsonify({
            'success': False,
            'error': '服务器内部错误，请稍后重试',
            'error_code': 500
        }), 500

    return render_template('errors/500.html'), 500


@errors_bp.app_errorhandler(401)
def unauthorized(error):
    """
    401 未授权错误处理
    """
    if request.is_json:
        return jsonify({
            'success': False,
            'error': '请先登录系统',
            'error_code': 401
        }), 401

    return render_template('errors/401.html'), 401